<?php
include_once '../init.inc.php';
//получаем имя файла
if (@$_REQUEST['filename']){
                            // отдаваемое файло
                            // $filename = './upload/Gmail.zip';  
               $filename = $a = str_replace("/","", $_REQUEST['filename']);
               $filename = '../zip/download/'.$filename;

                // есл файла нет
                if (!file_exists($filename)) {
                    header ("HTTP/1.0 404 Not Found");
                    exit;
                }

                // получим размер файла
                $fsize = filesize($filename);
                // дата модификации файла для кеширования
                $ftime = date("D, d M Y H:i:s T", filemtime($filename));
                // смещение от начала файла
                $range = 0;

                // пробуем открыть
                $handle = @fopen($filename, "rb");

                // если не удалось
                if (!$handle){
                header ("HTTP/1.0 403 Forbidden");
                exit;
                }

                // Если запрашивающий агент поддерживает докачку
                if ($_SERVER["HTTP_RANGE"]) {
                    $range = $_SERVER["HTTP_RANGE"];
                    $range = str_replace("bytes=", "", $range);
                    $range = str_replace("-", "", $range);
                    // смещаемся по файлу на нужное смещение
                    if ($range) {
                        fseek($handle, $range);
                    }
                }

                // если есть смещение
                if ($range) {
                header("HTTP/1.1 206 Partial Content");
                } else {
                header("HTTP/1.1 200 OK");
                }

                header("Content-Disposition: attachment; filename=\"{$filename}\"");
                header("Last-Modified: {$ftime}");
                header("Content-Length: ".($fsize-$range));
                header("Accept-Ranges: bytes");
                header("Content-Range: bytes {$range}-".($fsize - 1)."/".$fsize);

                // подправляем под IE что б не умничал
                if(isset($_SERVER['HTTP_USER_AGENT']) and strpos($_SERVER['HTTP_USER_AGENT'],'MSIE'))
                Header('Content-Type: application/force-download');
                else
                Header('Content-Type: application/octet-stream');

                while(!feof($handle)) {
                    $buf = fread($handle,512);
                    print($buf);
                }

                fclose($handle);
                unlink($filename);


        }

?>